package com.example.seakdreamandroid.whiteNoisePlayer;

import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import android.animation.ArgbEvaluator;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;

import com.example.seakdreamandroid.FavoriteActivity;
import com.example.seakdreamandroid.R;
import com.example.seakdreamandroid.entity.AudioInfo;
import com.example.seakdreamandroid.sleep.AlarmClockAndPrompt;
import com.example.seakdreamandroid.voiceCommunity.VoiceDescribeActivity;
import com.example.seakdreamandroid.whiteNoise.FreeConbination;
import com.example.seakdreamandroid.whiteNoise.WhiteNoiseFreeConbinationChannel;

import java.util.ArrayList;
//
//public class WhiteNoisePlayer2Activity extends AppCompatActivity {
//    //进度条
//    private static SeekBar seekBar;
//    private static TextView timeNow,timeAll;
//    private static ImageButton player,replay,share,list,alarm;
//    private static ImageView musicCenter1,musicCenter2;
//    private static LinearLayout linearLayout;
//    //动画
//    private static ObjectAnimator animator1,animator2;
//    private static ValueAnimator animator3,animator4;
//
//    private Intent intent1;
//    private Bundle bundle;
//    private Context mContext = WhiteNoisePlayer2Activity.this;
////    private int position;
//    private ArrayList<Integer> positions;
//    private ArrayList<AudioInfo> audioInfos;
//    private static String CONSTANTSTATE;
////    private ArrayList<String> selectedIds;
//    private static int COUNT = 0;
//    private static int COUNT_REPLAY = 0;
//    private static int duration=0;
//    private static int currentPosition=0;
//    private static boolean FLAG = false;
//    private Intent intent, intentToFavorite, intentToClock;
//
//
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_white_noise_player);
//        //获取FreeConbination（或者其他的fragment）上传来的信息
//        Intent intent = getIntent();
//        bundle = intent.getBundleExtra("freeconbination");
//
//        positions = bundle.getIntegerArrayList("positions");
//        audioInfos = (ArrayList<AudioInfo>) bundle.getSerializable("mlist");
//        CONSTANTSTATE = (String) bundle.getSerializable("playButton");
//
//        init();
////        seekbarInit();
//        setListener();
//        if(!player.getBackground().getConstantState().toString().equals(CONSTANTSTATE)){
//            player.setBackgroundResource(R.mipmap.play);
//
//            animator1.start();
//            animator3.start();
//
//        }
//    }
//
//    private void seekbarInit() {
//        //对进度条进行设置
//        seekBar.setMax(duration);
//        seekBar.setProgress(currentPosition);
//        //歌曲是多少分钟多少秒钟
//        int minute = duration/1000/60;
//        int second = duration/1000%60;
//        String strMinute=null;
//        String strSecond=null;
//        if(minute<10){//如果歌曲的时间中的分钟小于10
//            strMinute="0"+minute;//在分钟的前面加一个0
//        }else{
//            strMinute=minute+"";
//        }
//        if (second<10){//如果歌曲中的秒钟小于10
//            strSecond="0"+second;//在秒钟前面加一个0
//        }else{
//            strSecond=second+"";
//        }
//        //显示了歌曲总时长
//        timeAll.setText(strMinute+":"+strSecond);
//        //歌曲当前播放时长
//        minute=currentPosition/1000/60;
//        second=currentPosition/1000%60;
//        if(minute<10){//如果歌曲的时间中的分钟小于10
//            strMinute="0"+minute;//在分钟的前面加一个0
//        }else{
//            strMinute=minute+" ";
//        }
//        if (second<10){//如果歌曲中的秒钟小于10
//            strSecond="0"+second;//在秒钟前面加一个0
//        }else{
//            strSecond=second+" ";
//        }
//        //显示当前歌曲已经播放的时间
//        timeNow.setText(strMinute+":"+strSecond);
//    }
//
//    private void setListener() {
//        MyListener myListener = new MyListener();
//        player.setOnClickListener(myListener);
//        replay.setOnClickListener(myListener);
//        share.setOnClickListener(myListener);
//        list.setOnClickListener(myListener);
//        alarm.setOnClickListener(myListener);
//    }
//    private class MyListener implements View.OnClickListener{
//
//        @Override
//        public void onClick(View v) {
//            switch (v.getId()){
//                case R.id.white_noise_play:
//                    Log.e("msg","aaaaaaaaaa");
//                    if(player.getBackground().getConstantState().equals(getResources().getDrawable(R.mipmap.play2).getConstantState())){
//                        player.setBackgroundResource(R.mipmap.play);
//                        Message msg = FreeConbination.handler.obtainMessage();
//                        msg.what = 3;
//                        //将音乐的总时长和播放进度封装至bundle中
//                        Bundle bundle = new Bundle();
//                        bundle.putBoolean("pause",true);
//                        //再将bundle封装到msg消息对象中
//                        msg.setData(bundle);
//                        //最后将消息发送到主线程的消息队列
//                        FreeConbination.handler.sendMessage(msg);
////                        musicCenter.setImageResource(R.mipmap.musiccenter1);
////                        linearLayout.setBackgroundColor(Color.parseColor("#b0b0b8"));
//                        animator1.start();
//                        animator3.start();
//                        COUNT++;
//
//                    }else {
//                        player.setBackgroundResource(R.mipmap.play2);
//                        Message msg = FreeConbination.handler.obtainMessage();
//                        msg.what = 3;
//                        //将音乐的总时长和播放进度封装至bundle中
//                        Bundle bundle = new Bundle();
//                        bundle.putBoolean("pause",false);
//                        //再将bundle封装到msg消息对象中
//                        msg.setData(bundle);
//                        //最后将消息发送到主线程的消息队列
//                        FreeConbination.handler.sendMessage(msg);
////                        musicCenter.setImageResource(R.mipmap.musiccenter);
////                        linearLayout.setBackgroundColor(Color.parseColor("#978ed1"));
//                        animator2.start();
//                        animator4.start();
//                        COUNT++;
//                    }
//                    break;
//                case R.id.white_noise_replay:
//                    if(!FLAG){
//                        Message msg = FreeConbination.handler.obtainMessage();
//                        msg.what = 4;
//                        //将音乐的总时长和播放进度封装至bundle中
//                        Bundle bundle = new Bundle();
//                        bundle.putBoolean("looping",true);
//                        FLAG = true;
//                        //再将bundle封装到msg消息对象中
//                        msg.setData(bundle);
//                        //最后将消息发送到主线程的消息队列
//                        FreeConbination.handler.sendMessage(msg);
//                        replay.setBackgroundResource(R.mipmap.alreplaypic);
//
////                        COUNT_REPLAY++;
//                    }else{
//                        Message msg = FreeConbination.handler.obtainMessage();
//                        msg.what = 4;
//                        //将音乐的总时长和播放进度封装至bundle中
//                        Bundle bundle = new Bundle();
//                        bundle.putBoolean("looping",false);
//                        //再将bundle封装到msg消息对象中
//                        FLAG = false;
//                        replay.setBackgroundResource(R.mipmap.replaypic);
//                        msg.setData(bundle);
//                        //最后将消息发送到主线程的消息队列
//                        FreeConbination.handler.sendMessage(msg);
//
////                        COUNT_REPLAY++;
//                    }
//
//                    break;
//                case R.id.white_noise_palyer_share:
//                    Intent intent1 = new Intent(v.getContext(), VoiceDescribeActivity.class);
//
//                    Bundle bundle1 = new Bundle();
//                    bundle1.putIntegerArrayList("positions",positions);
//                    bundle1.putSerializable("mlist",audioInfos);
//                    bundle1.putString("channel","freeconbination");
//                    intent1.putExtra("voiceBundle",bundle1);
//                    startActivityForResult(intent1,1);
//                    break;
//                case R.id.white_noise_alarm:
//                    intentToClock = new Intent(v.getContext(), AlarmClockAndPrompt.class);
//                    startActivityForResult(intentToClock,1);
//                    break;
//                case R.id.white_noise_list:
//                    intentToFavorite = new Intent(v.getContext(), FavoriteActivity.class);
//                    startActivityForResult(intentToFavorite,1);
//                    break;
//            }
//        }
//    }
//
//    private void init(){
//        //进度条上小绿点的位置，也就是当前已播放时间
//        timeNow = findViewById(R.id.white_noise_time_now);
//        //进度条的总长度，就是总时间
//        timeAll = findViewById(R.id.white_noise_time_all);
//        //进度条的控件
//        seekBar = findViewById(R.id.white_noise_seekbar);
//        //播放的控件
//        player = findViewById(R.id.white_noise_play);
//        //循环播放按钮
//        replay = findViewById(R.id.white_noise_replay);
//        //分享按钮
//        share = findViewById(R.id.white_noise_palyer_share);
//        //闹钟按钮
//        alarm = findViewById(R.id.white_noise_alarm);
//        //列表按钮
//        list = findViewById(R.id.white_noise_list);
//        linearLayout = findViewById(R.id.white_noise_linearLayout);
//        musicCenter1 = findViewById(R.id.white_noise_music_center1);
//        musicCenter2 = findViewById(R.id.white_noise_music_center2);
//
//        //为滑动条添加事件监听，每个控件不同果然点击事件方法名都不同
//        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
//            //这一行注解是保证API在KITKAT以上的模拟器才能顺利运行，也就是19以上
//            @RequiresApi(api = Build.VERSION_CODES.KITKAT)
//            @Override
//            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
//                //进当滑动条到末端时，结束动画
//                if(progress == seekBar.getMax() && !FLAG){
////                    animator.pause();//停止播放动画
//                    player.setBackgroundResource(R.mipmap.play);
////                    musicCenter.setImageResource(R.mipmap.musiccenter1);
////                    linearLayout.setBackgroundColor(Color.parseColor("#b0b0b8"));
//                    animator1.start();
//                    animator3.start();
//                    COUNT++;
//                }
//            }
//            //滑动条开始滑动时调用
//            @Override
//            public void onStartTrackingTouch(SeekBar seekBar) {
//
//
//            }
//            //滑动条停止滑动时调用
//            @Override
//            public void onStopTrackingTouch(SeekBar seekBar) {
//                //根据拖动的进度改变音乐播放进度
//                int progress = seekBar.getProgress();
//                Message msg = FreeConbination.handler.obtainMessage();
//                msg.what = 5;
//                //将音乐的总时长和播放进度封装至bundle中
//                Bundle bundle = new Bundle();
//                bundle.putInt("progress",progress);
//                //再将bundle封装到msg消息对象中
//                msg.setData(bundle);
//                //最后将消息发送到主线程的消息队列
//                FreeConbination.handler.sendMessage(msg);
////                whiteNoiseControl.seekTo(progress);
//            }
//        });
//        animator1 = ObjectAnimator.ofInt(linearLayout,"backgroundColor",Color.parseColor("#978ed1"),Color.parseColor("#b0b0b8"));
//        animator1.setDuration(500);
//        animator1.setEvaluator(new ArgbEvaluator());
//
//        animator2 = ObjectAnimator.ofInt(linearLayout,"backgroundColor",Color.parseColor("#b0b0b8"),Color.parseColor("#978ed1"));
//        animator2.setDuration(500);
//        animator2.setEvaluator(new ArgbEvaluator());
//
//
//        animator3 = ValueAnimator.ofFloat(0f,1f);
//        animator3.setDuration(500);
//        animator3.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
//            @Override
//            public void onAnimationUpdate(ValueAnimator animation) {
//                float alpha = (float) animation.getAnimatedValue();
//                musicCenter1.setAlpha(1 - alpha);
//                musicCenter2.setAlpha(alpha);
//            }
//        });
//
//        animator4 = ValueAnimator.ofFloat(0f,1f);
//        animator4.setDuration(500);
//        animator4.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
//            @Override
//            public void onAnimationUpdate(ValueAnimator animation) {
//                float alpha = (float) animation.getAnimatedValue();
//                musicCenter2.setAlpha(1 - alpha);
//                musicCenter1.setAlpha(alpha);
//            }
//        });
//
//    }
//
//    //handler机制，可以理解为线程间的通信，我获取到一个信息，然后把这个信息告诉你，就这么简单
//    public static Handler handler = new Handler(){//创建消息处理器对象
//        //在主线程中处理从子线程发送过来的消息
//        @Override
//        public void handleMessage(@NonNull Message msg) {
//            switch (msg.what){
//                case 1:
//                    Bundle bundle = msg.getData();
//                    //获取当前进度currentPosition和总时长duration
//                    duration = bundle.getInt("duration");
//                    currentPosition = bundle.getInt("currentPosition");
//                    if(seekBar != null){
//                        //对进度条进行设置
//                        seekBar.setMax(duration);
//                        seekBar.setProgress(currentPosition);
//                        //歌曲是多少分钟多少秒钟
//                        int minute = duration/1000/60;
//                        int second = duration/1000%60;
//                        String strMinute=null;
//                        String strSecond=null;
//                        if(minute<10){//如果歌曲的时间中的分钟小于10
//                            strMinute="0"+minute;//在分钟的前面加一个0
//                        }else{
//                            strMinute=minute+"";
//                        }
//                        if (second<10){//如果歌曲中的秒钟小于10
//                            strSecond="0"+second;//在秒钟前面加一个0
//                        }else{
//                            strSecond=second+"";
//                        }
//                        //显示了歌曲总时长
//                        timeAll.setText(strMinute+":"+strSecond);
//                        //歌曲当前播放时长
//                        minute=currentPosition/1000/60;
//                        second=currentPosition/1000%60;
//                        if(minute<10){//如果歌曲的时间中的分钟小于10
//                            strMinute="0"+minute;//在分钟的前面加一个0
//                        }else{
//                            strMinute=minute+" ";
//                        }
//                        if (second<10){//如果歌曲中的秒钟小于10
//                            strSecond="0"+second;//在秒钟前面加一个0
//                        }else{
//                            strSecond=second+" ";
//                        }
//                        //显示当前歌曲已经播放的时间
//                        timeNow.setText(strMinute+":"+strSecond);
//                    }
//                    break;
//                case 2:
//                    if(player != null){
//                        Log.e("player","aaaaaaaaaaaaa");
//                        Bundle bundle1 = new Bundle();
//                        boolean flag = bundle1.getBoolean("flag");
//                        Log.e("flag",flag+"");
//                        if(flag){
//                            player.setBackgroundResource(R.mipmap.play2);
//                            COUNT++;
////                            musicCenter.setImageResource(R.mipmap.musiccenter);
////                            linearLayout.setBackgroundColor(Integer.parseInt("#978ed1"));
//                            Log.e("flag","aaaaaaaa");
//                            animator2.start();
//                            animator4.start();
//                        }else{
//                            player.setBackgroundResource(R.mipmap.play);
////                            musicCenter.setImageResource(R.mipmap.musiccenter1);
//                            linearLayout.setBackgroundColor(Color.parseColor("#b0b0b8"));
//                            COUNT++;
//                            Log.e("flag","bbbbbbbbb");
//                            animator1.start();
//                            animator3.start();
//                        }
//                    }
//                    break;
//                case 3:
//                    Bundle bundle2  = msg.getData();
//                    boolean a = bundle2.getBoolean("return");
//                    if(a){
//                        Log.e("msg","分享成功");
////                        showToast();
//                    }
//
//                    break;
//            }
//
//        }
//    };
//
//    private void showToast() {
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                Toast.makeText(WhiteNoisePlayer2Activity.this, "分享成功",Toast.LENGTH_SHORT).show();
//            }
//        }).start();
//
//    }
//}